package com.sjzxywlkj.cplife.alipay.request.entity;

import com.alibaba.fastjson.JSON;

/**
 * 初始化小区物业基础服务请求参数
 * url:https://docs.open.alipay.com/api_20/alipay.eco.cplife.basicservice.initialize
 */
public class BasicserviceInitialize {

    //支付宝社区小区统一编号
    private String community_id;
    //基础服务类型，目前支持的类型值为： PROPERTY_PAY_BILL_MODE - 物业缴费账单上传模式
    private String service_type;
    /*由开发者系统提供的，支付宝根据基础服务类型在特定业务环节调用的外部系统服务地址，开发者需要确保外部地址的准确性。在线上环境需要使用HTTPS协议，会检查ssl证书，要求证书为正规的证书机构签发，不支持自签名证书。
    对于PROPERTY_PAY_BILL_MODE服务类型，该地址表示用户缴费支付完成后开发者系统接受支付结果通知的回调地址。*/
    private String external_invoke_address;
    /*若服务类型为物业缴费账单模式，每个小区默认的收款帐号为授权物业的支付宝账号，但允许开发者为每个小区服务传入一个指定的物业收款帐号，收款帐号支持三种类型：
    ALIPAY_LOGON_ID - 物业签约支付宝收单产品时配置的支付宝收款限制集中的支付宝登陆账号，必须在授权物业账号名下的收款限制集中。
    ALIPAY_PARTNER_ID - 物业签约支付宝收单产品时配置的支付宝收款限制集中的账号PID，2088开头的16位账号。必须在授权物业账号名下的收款限制集中。
    BANK_CARD_ID - 物业集团公司在签约收单产品时支付宝平台配置的银行卡编号（注：非实际银行账号）。*/
    private String account_type;
    //若服务类型为物业缴费账单模式，每个小区默认的收款帐号为授权物业的支付宝账号，默认不用传该参数。
    //但为满足部分物业个性化需求，允许开发者为每个小区服务传入一个指定的物业收款帐号。根据不同账号类型，开发者需要向物业或支付宝商务支持接口人获取具体的收款帐号。
    private String account;
    //若本服务需要变更过期时间（如在物业服务合同中约定），开发者按标准时间格式：yyyy-MM-dd HH:mm:ss传入。
    private String service_expires;

    public String toJson() {
        return JSON.toJSONString(this);
    }

    public BasicserviceInitialize() {
        super();
    }

    public String getCommunity_id() {
        return community_id;
    }

    public void setCommunity_id(String community_id) {
        this.community_id = community_id;
    }

    public String getService_type() {
        return service_type;
    }

    public void setService_type(String service_type) {
        this.service_type = service_type;
    }

    public String getExternal_invoke_address() {
        return external_invoke_address;
    }

    public void setExternal_invoke_address(String external_invoke_address) {
        this.external_invoke_address = external_invoke_address;
    }

    public String getAccount_type() {
        return account_type;
    }

    public void setAccount_type(String account_type) {
        this.account_type = account_type;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getService_expires() {
        return service_expires;
    }

    public void setService_expires(String service_expires) {
        this.service_expires = service_expires;
    }

    public BasicserviceInitialize(String community_id, String service_type, String external_invoke_address,
                                  String account_type, String account, String service_expires) {
        super();
        this.community_id = community_id;
        this.service_type = service_type;
        this.external_invoke_address = external_invoke_address;
        this.account_type = account_type;
        this.account = account;
        this.service_expires = service_expires;
    }


}
